#ifndef __SEMANTIC_H__
#define __SEMANTIC_H__

#include "ast.h"
#include <string>
#include <vector>

#include <boost/shared_ptr.hpp>

using namespace boost;

class SemanticAnalyser {
public:
	SemanticAnalyser(shared_ptr<Program> program);
	~SemanticAnalyser();
	
	void checkProgram();
	bool hasErrors();
	void printErrors();
private:
	shared_ptr<Program> program;
	std::vector<std::string> errors;
};

#endif
